﻿using mozhi.smarterp.Business.Enums;
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace mozhi.smarterp.Business.Sales.Orders
{
    public interface ISaleOrderAppService : IApplicationService
    {
        Task<SaleOrderDto> GetAsync(Guid id);

        Task<SaleOrderDto> CreateAsync(SaleOrderCreateDto input);

        Task<SaleOrderDto> UpdateAsync(SaleOrderUpdateDto input);

        Task<SaleOrderDto> UpdateStatusAsync(Guid id, DocumentStatusType status);

        Task<PagedResultDto<SaleOrderDto>> GetListAsync(SaleOrderPagedResultRequestDto filter);

        Task DeleteAsync(Guid id);

        Task<Guid> PushAdvanceReceiptAsync(Guid id);

        Task<Guid> PushSaleDeliveryAsync(Guid id);
    }
}
